﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using Urb.Weather.Core.MeasureUnit;
using System.Collections.ObjectModel;

namespace Urb.Weather.Core.UI
{
    public interface IMainViewModel : INotifyPropertyChanged
    {
        decimal? CurrentTemperature { get; }
        ObservableCollection<TemperatureConditionComponentDataView> CurrentTemperatureComponents { get; }
        decimal? MinTemperature { get; }
        decimal? MaxTemperature { get; }
        TemperatureUnit TemperatureUnit { get; }
        DateTimeOffset? MinTemperatureMeasurementTime { get; }
        DateTimeOffset? MaxTemperatureMeasurementTime { get; }
        bool AnyTemperatureExtremeRecorded { get; }

        decimal? CurrentPressure { get; }
        ObservableCollection<PressureConditionComponentDataView> CurrentPressureComponents { get; }
        decimal? MinPressure { get; }
        decimal? MaxPressure { get; }
        PressureUnit PressureUnit { get; }
        DateTimeOffset? MinPressureMeasurementTime { get; }
        DateTimeOffset? MaxPressureMeasurementTime { get; }
        bool AnyPressureExtremeRecorded { get; }

        bool AnyExtremeRecorded { get; }

        AtmosphereConditionsCode? CurrentAtmosphereConditionsCode { get; }
        string CurrentAtmosphereConditionsDescription { get; }

        ForecastDataView TodayForecast { get; }
        ObservableCollection<ForecastDataView> NextDaysForecast { get; }
    }
}
